#!/usr/bin/env python3
import os

#本函数作用是统计指定路径下文件或者文件夹大小
def countSize(filePath):
    totalSize = 0
    #如果路径不存在，则报错并返回None
    if not os.path.exists(filePath):
        print("The path is not exist, please check again!")
        return None
    #如果是相对路径，将相对路径转换为绝对路径
    if not os.path.isabs(filePath):
        filePath = os.path.abspath(filePath)
    #判断给定路径是否是文件，如果是，求出大小并返回
    if os.path.isfile(filePath):
        totalSize += os.path.getsize(filePath)
    else:
        #获取指定路径下的所有文件和文件夹列表
        flist = os.listdir(filePath)
        #循环获取目录下文件的大小，
        for f in flist:
            fPath = os.path.join(filePath,f)
            #如果是文件，则累加大小
            if os.path.isfile(fPath):
                totalSize += os.path.getsize(fPath)
            else:
                #如果是文件夹，则递归获取
                if os.path.isdir(fPath):
                    totalSize += countSize(fPath)
        #返回文件总大小
    return totalSize
    
print("totalsize: {}".format(countSize("./a")))
#print("给定路径下内容的总大小为：{}".format(countSize("/home/leon/python/UnitTwo/test0602.py")))
#print("给定路径下内容的总大小为：{}".format(countSize("/home/leon")))
